home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / C⁄C++ OS8 / Everything / ModelessBars.cp < prev    next >
Encoding:
Text File  |  1998-09-06  |  6.7 KB  |  230 lines  |  [TEXT/CWIE]

  1. // ModelessBars.cp -- modeless dialog
  2.  
  3. #include <Types.h>
  4. #include <Quickdraw.h>
  5. #include <Controls.h>
  6. #include <Dialogs.h>
  7. #include <Events.h>
  8. #include <Lists.h>
  9. #include <Menus.h>
  10. #include <TextEdit.h>
  11. #include <Appearance.h>
  12.  
  13. #include "ResourceDefs.h"
  14. #include "Miscellany.h"
  15. #include "ControlUtils.h"
  16.  
  17. #include "ModelessBars.h"
  18.  
  19. #define kBarsPanel        1
  20. #define kScrollBarsLayer        2
  21. #define kStandardScroll        3
  22. #define kGraphicScroll        4
  23. #define kSliderScroll        5
  24. #define kTickMarksScroll        6
  25. #define kNonDirectionalScroll        7
  26. #define kLittleArrowsScroll        8
  27. #define kSpinnerScroll        9
  28. #define kVolumeControlScroll        10
  29. #define kJimSSliderScroll        11
  30. #define kProgressBarsLayer        12
  31. #define kStandard2Bar            13
  32. #define kIndeterminateBar            14
  33. #define kChasingArrowsBar            15
  34. #define kRectangleBar            16
  35. #define kRoundRectBar            17
  36. #define kBarberPoleBar            18
  37. #define kRoundBarberBar            19
  38.  
  39.  
  40. //----------
  41. CModelessBars*        CModelessBars::sDialog = nil;
  42.  
  43. //----------
  44. // static
  45. CModelessBars*        CModelessBars::Create ()
  46. {
  47.     CModelessBars*        dialog = new CModelessBars;
  48.     DModelessBarsData*        data = new DModelessBarsData;
  49.  
  50.     dialog->MakeDialog (DLOG_ModelessBars);
  51.     dialog->ConnectToData (data);
  52.  
  53.     return dialog;
  54. }
  55.  
  56. //----------
  57. // static
  58. CModelessBars*        CModelessBars::Show ()
  59. {
  60.     if (sDialog == nil) {
  61.         sDialog = CModelessBars::Create ();
  62.     }
  63.     if (sDialog != nil) {
  64.         ::SelectWindow (sDialog->mDialog);
  65.         ::ShowWindow (sDialog->mDialog);
  66.     }
  67.     return sDialog;
  68. }
  69.  
  70. //----------
  71. CModelessBars::CModelessBars ()
  72. {
  73.     mData = nil;
  74. }
  75.  
  76. //----------
  77. CModelessBars::~CModelessBars ()
  78. {
  79.     sDialog = nil;
  80. }
  81.  
  82. //----------
  83. void    CModelessBars::FinishMake ()
  84. {
  85.     mBarsHandle = GetControlItem (kBarsPanel);
  86.     mStandardHandle = GetControlItem (kStandardScroll);
  87.     mGraphicHandle = GetControlItem (kGraphicScroll);
  88.     mSliderHandle = GetControlItem (kSliderScroll);
  89.     mTickMarksHandle = GetControlItem (kTickMarksScroll);
  90.     mNonDirectionalHandle = GetControlItem (kNonDirectionalScroll);
  91.     mLittleArrowsHandle = GetControlItem (kLittleArrowsScroll);
  92.     mSpinnerHandle = GetControlItem (kSpinnerScroll);
  93.     mVolumeControlHandle = GetControlItem (kVolumeControlScroll);
  94.     mJimSSliderHandle = GetControlItem (kJimSSliderScroll);
  95.     mStandard2Handle = GetControlItem (kStandard2Bar);
  96.     mIndeterminateHandle = GetControlItem (kIndeterminateBar);
  97.     SetIndeterminateState (mIndeterminateHandle, true);
  98.     mChasingArrowsHandle = GetControlItem (kChasingArrowsBar);
  99.     mRectangleHandle = GetControlItem (kRectangleBar);
  100.     mRoundRectHandle = GetControlItem (kRoundRectBar);
  101.     mBarberPoleHandle = GetControlItem (kBarberPoleBar);
  102.     mRoundBarberHandle = GetControlItem (kRoundBarberBar);
  103. }
  104.  
  105. //----------
  106. void    CModelessBars::ConnectToData (
  107.     AMSignaler*        inData)
  108. {
  109.     AMDialog::ConnectToData (inData);
  110.     mData = (DModelessBarsData*) inData;
  111.  
  112.     SetControlValue (mBarsHandle, mData->GetBars3 ());
  113.     SetLayerGroupValue (mBarsHandle, GetControlValue (mBarsHandle));
  114.     SetControlValue (mStandardHandle, mData->GetStandard8 ());
  115.     SetControlValue (mGraphicHandle, mData->GetGraphic6 ());
  116.     SetControlValue (mSliderHandle, mData->GetSlider3 ());
  117.     SetControlValue (mTickMarksHandle, mData->GetTickMarks3 ());
  118.     SetControlValue (mNonDirectionalHandle, mData->GetNonDirectional3 ());
  119.     SetControlValue (mLittleArrowsHandle, mData->GetLittleArrows3 ());
  120.     SetControlValue (mSpinnerHandle, mData->GetSpinner3 ());
  121.     SetControlValue (mVolumeControlHandle, mData->GetVolumeControl3 ());
  122.     SetControlValue (mJimSSliderHandle, mData->GetJimSSlider3 ());
  123.     SetControlValue (mStandard2Handle, mData->GetStandard9 ());
  124.     SetControlValue (mIndeterminateHandle, mData->GetIndeterminate3 ());
  125.     SetControlValue (mChasingArrowsHandle, mData->GetChasingArrows3 ());
  126.     SetControlValue (mRectangleHandle, mData->GetRectangle3 ());
  127.     SetControlValue (mRoundRectHandle, mData->GetRoundRect3 ());
  128.     SetControlValue (mBarberPoleHandle, mData->GetBarberPole3 ());
  129.     SetControlValue (mRoundBarberHandle, mData->GetRoundBarber3 ());
  130. }
  131.  
  132. //----------
  133. void    CModelessBars::DataChanged (
  134.     long        inDataID)
  135. {
  136.     if (inDataID == idBars3) {
  137.         SetControlValue (mBarsHandle, mData->GetBars3 ());
  138.         SetLayerGroupValue (mBarsHandle, mData->GetBars3 ());
  139.     }
  140.     if (inDataID == idStandard8) {
  141.         SetControlValue (mStandardHandle, mData->GetStandard8 ());
  142.     }
  143.     if (inDataID == idGraphic6) {
  144.         SetControlValue (mGraphicHandle, mData->GetGraphic6 ());
  145.     }
  146.     if (inDataID == idSlider3) {
  147.         SetControlValue (mSliderHandle, mData->GetSlider3 ());
  148.     }
  149.     if (inDataID == idTickMarks3) {
  150.         SetControlValue (mTickMarksHandle, mData->GetTickMarks3 ());
  151.     }
  152.     if (inDataID == idNonDirectional3) {
  153.         SetControlValue (mNonDirectionalHandle, mData->GetNonDirectional3 ());
  154.     }
  155.     if (inDataID == idLittleArrows3) {
  156.         SetControlValue (mLittleArrowsHandle, mData->GetLittleArrows3 ());
  157.     }
  158.     if (inDataID == idSpinner3) {
  159.         SetControlValue (mSpinnerHandle, mData->GetSpinner3 ());
  160.     }
  161.     if (inDataID == idVolumeControl3) {
  162.         SetControlValue (mVolumeControlHandle, mData->GetVolumeControl3 ());
  163.     }
  164.     if (inDataID == idJimSSlider3) {
  165.         SetControlValue (mJimSSliderHandle, mData->GetJimSSlider3 ());
  166.     }
  167.     if (inDataID == idStandard9) {
  168.         SetControlValue (mStandard2Handle, mData->GetStandard9 ());
  169.     }
  170.     if (inDataID == idIndeterminate3) {
  171.         SetControlValue (mIndeterminateHandle, mData->GetIndeterminate3 ());
  172.     }
  173.     if (inDataID == idChasingArrows3) {
  174.         SetControlValue (mChasingArrowsHandle, mData->GetChasingArrows3 ());
  175.     }
  176.     if (inDataID == idRectangle3) {
  177.         SetControlValue (mRectangleHandle, mData->GetRectangle3 ());
  178.     }
  179.     if (inDataID == idRoundRect3) {
  180.         SetControlValue (mRoundRectHandle, mData->GetRoundRect3 ());
  181.     }
  182.     if (inDataID == idBarberPole3) {
  183.         SetControlValue (mBarberPoleHandle, mData->GetBarberPole3 ());
  184.     }
  185.     if (inDataID == idRoundBarber3) {
  186.         SetControlValue (mRoundBarberHandle, mData->GetRoundBarber3 ());
  187.     }
  188. }
  189.  
  190.  
  191. //----------
  192. void    CModelessBars::DoItem (
  193.     SInt16        inItemHit)
  194. {
  195.     switch (inItemHit) {
  196.     case kBarsPanel:
  197.             mData->SetBars3 (GetControlValue (mBarsHandle));
  198.             SetLayerGroupValue (mBarsHandle, GetControlValue (mBarsHandle));
  199.         break;
  200.     case kStandardScroll:
  201.             mData->SetStandard8 (GetControlValue (mStandardHandle));
  202.         break;
  203.     case kGraphicScroll:
  204.             mData->SetGraphic6 (GetControlValue (mGraphicHandle));
  205.         break;
  206.     case kSliderScroll:
  207.             mData->SetSlider3 (GetControlValue (mSliderHandle));
  208.         break;
  209.     case kTickMarksScroll:
  210.             mData->SetTickMarks3 (GetControlValue (mTickMarksHandle));
  211.         break;
  212.     case kNonDirectionalScroll:
  213.             mData->SetNonDirectional3 (GetControlValue (mNonDirectionalHandle));
  214.         break;
  215.     case kLittleArrowsScroll:
  216.             mData->SetLittleArrows3 (GetControlValue (mLittleArrowsHandle));
  217.         break;
  218.     case kSpinnerScroll:
  219.             mData->SetSpinner3 (GetControlValue (mSpinnerHandle));
  220.         break;
  221.     case kVolumeControlScroll:
  222.             mData->SetVolumeControl3 (GetControlValue (mVolumeControlHandle));
  223.         break;
  224.     case kJimSSliderScroll:
  225.             mData->SetJimSSlider3 (GetControlValue (mJimSSliderHandle));
  226.         break;
  227.  
  228.     } // switch
  229. }
  230.